CSS 컀ì€í ìì±(ë³ì)ì ì²ëЬ ìë륌 몚ëí°ë§íì¬ ì¹ì¬ìŽíž ì±ë¥ì ìµì ííìžì. ë³ì ì±ë¥ì ìž¡ì , ë¶ì ë° ê°ì íì¬ ë ìíí ì¬ì©ì 겜íì ì ê³µíë ë°©ë²ì ìì볎ìžì.
CSS 컀ì€í ìì± ì±ë¥ 몚ëí°ë§: ë³ì ì²ëЬ ìë ë¶ì
CSS ë³ìëŒê³ ë ìë €ì§ CSS 컀ì€í ìì±ì ì€íìŒìížë¥Œ ìì±íê³ ì ì§ êŽëЬíë ë°©ìì íì ì ê°ì žììµëë€. ìŽë€ì ëììž í í°, í ë§ ë° ë³µì¡í ì€íìŒì êŽëЬíêž° ìí ê°ë ¥í ë©ì»€ëìŠì ì ê³µíì¬ ì ì§ êŽëЬíêž° ìœê³ íì¥ ê°ë¥í ìœë륌 ë§ëëë€. ê·žë¬ë 몚ë êž°ì 곌 ë§ì°¬ê°ì§ë¡ íšìšì ìŽê³ ë°ìì±ìŽ ë°ìŽë ì¹ ì í늬ìŒìŽì ì 구ì¶íë €ë©Ž ì±ë¥ì ëí ìŽíŽê° ì€ìí©ëë€. ìŽ êžì CSS 컀ì€í ìì± ì±ë¥ 몚ëí°ë§ì ìžê³ë¥Œ í구íë©°, ë³ì ì²ëЬ ìë륌 ìž¡ì , ë¶ì ë° ìµì ííë ë°©ë²ì ëí íµì°°ë ¥ì ì ê³µí©ëë€.
CSS 컀ì€í ìì± ì±ë¥ì 몚ëí°ë§íŽìŒ íë ìŽì
CSS 컀ì€í ìì±ì ìœë ì¬ì¬ì©ì± ë° ëì ì€íìŒë§ì í¬íšíì¬ ìë§ì ìŽì ì ì ê³µíì§ë§, ì ì€íê² ì¬ì©íì§ ììŒë©Ž ì±ë¥ ì€ë²í€ë륌 ì ë°í ì ììµëë€. ì±ë¥ 몚ëí°ë§ìŽ íìì ìž ìŽì ë ë€ì곌 ê°ìµëë€:
- ë ëë§ ë³ëª© íì: CSS 컀ì€í ìì±ì ëí 곌ëí ê³ì°ìŽë ë¹ë²í ì ë°ìŽížë 늬íë¡ì° ë° ëŠ¬íìžížë¥Œ ì ë°íì¬ ë ëë§ ìë ì íì ì¢ì§ ìì ì¬ì©ì 겜íì ìŽëí ì ììµëë€.
- ë³µì¡ì± ì€ë²í€ë: ì§ëì¹ê² ë³µì¡í ë³ì ì¢ ìì±ê³Œ ê³ì°ì ëžëŒì°ì ì ë ëë§ ìì§ì ë¶ëŽì ì£ŒìŽ íìŽì§ ë¡ë ìê°ì ëŠì¶ ì ììµëë€.
- ììì¹ ëª»í ì±ë¥ 묞ì : ì ì í 몚ëí°ë§ ììŽë CSS 컀ì€í ìì±ê³Œ êŽë šë ì±ë¥ ë³ëª© íìì ìë³íê³ íŽê²°íêž° ìŽë µìµëë€.
- ê·ëªšì ë°ë¥ž ì±ë¥ ì ì§: ì¹ì¬ìŽížê° ì±ì¥íê³ ë°ì íšì ë°ëŒ CSSì ë³µì¡ì±ë ìŠê°íë 겜ì°ê° ë§ìµëë€. 몚ëí°ë§ì 컀ì€í ìì±ìŽ ìê°ìŽ ì§ëë ì±ë¥ í¹ì±ì ì ì§íëë¡ ëìµëë€.
CSS 컀ì€í ìì±ì ì±ë¥ ìí¥ ìŽíŽíêž°
CSS 컀ì€í ìì±ì ì±ë¥ ìí¥ì ë€ìì í¬íší ì¬ë¬ ììžì ë°ëŒ ë¬ëŒì§ëë€:
- ë³ì ë²ì: ì ì ë³ì(
:rootì íìì ì ìëš)ë ë¡ì»¬ ë²ì ë³ìë³Žë€ ë êŽë²ìí ìí¥ì ë¯žì¹ ì ììµëë€. - ê³ì° ë³µì¡ì±:
calc(),var()ë° êž°í íšì륌 í¬íšíë ë³µì¡í ê³ì°ì ê³ì° ë¹ì©ìŽ ë§ìŽ ë€ ì ììµëë€. - ì ë°ìŽíž ë¹ë: í¹í ë ìŽìì ë³ê²œì ì ë°íë ë³ì륌 ì죌 ì ë°ìŽíží멎 ì±ë¥ 묞ì ê° ë°ìí ì ììµëë€.
- ëžëŒì°ì 구í: ëžëŒì°ì ë§ë€ CSS 컀ì€í ìì± íê°ë¥Œ ë€ë¥Žê² 구íí ì ììŽ ì±ë¥ í¹ì±ìŽ ë¬ëŒì§ ì ììµëë€.
ì±ë¥ 몚ëí°ë§ ë구 ë° êž°ì
ëª ê°ì§ ë구ì êž°ì ì CSS 컀ì€í ìì±ì ì±ë¥ì 몚ëí°ë§íë ë° ëììŽ ë ì ììµëë€:
1. ëžëŒì°ì ê°ë°ì ë구
ìµì ëžëŒì°ì ê°ë°ì ë구ë ì¹ì¬ìŽíž ì±ë¥ì ëí íë¶í ì 볎륌 ì ê³µí©ëë€. CSS 컀ì€í ìì± ëªšëí°ë§ì ìíŽ ìŽë¥Œ íì©íë ë°©ë²ì ë€ì곌 ê°ìµëë€:
- ì±ë¥ íë¡íìŒë¬: ì±ë¥ íë¡íìŒë¬(Chrome, Firefox ë° êž°í ëžëŒì°ì ìì ì¬ì© ê°ë¥)륌 ì¬ì©íì¬ ì¹ì¬ìŽíž íëì êž°ë¡íê³ ë¶ìí©ëë€. CSS 컀ì€í ìì± ê³ì°ê³Œ êŽë šë ì ìë ì€ë ì€íëë ìì , 곌ëí 늬íìžíž ë° ëŠ¬íë¡ì°ë¥Œ ì°Ÿìµëë€.
- ë ëë§ í: Chrome ê°ë°ì ë구ì ë ëë§ íì ì¬ì©í멎 íìžíž ììì ê°ì¡° íìíê³ ì죌 늬íìžížëë íìŽì§ ììì ìë³í ì ììµëë€. ìŽë ë³ì ì ë°ìŽížë¡ ìží ì±ë¥ ë³ëª© íìì ì íí ì°ŸìëŽë ë° ëììŽ ë ì ììµëë€.
- CSS ê°ì íšë (Chrome): CSS ê°ì íšëì ì¬ì©ë CSS 컀ì€í ìì±ì ìì ë¶í¬ë¥Œ í¬íšíì¬ ì€íìŒìížì ëí ììœì ì ê³µí©ëë€. ìŽë ë³ì륌 곌ëíê² ì¬ì©íê³ ìì ì ìë ììì ìë³íë ë° ëììŽ ë ì ììµëë€.
- ê°ì¬ íšë (Lighthouse): Lighthouse ê°ì¬ë CSSì êŽë šë ì ì¬ì ìž ì±ë¥ 묞ì 륌 ìë³íê³ ê°ì ì ìí ê¶ì¥ ì¬íì ì ê³µí ì ììµëë€.
ìì (Chrome ê°ë°ì ë구 ì±ë¥ íë¡íìŒë¬):
1. Chrome ê°ë°ì ë구 ìŽêž° (macOSììë F12 ëë Cmd+Opt+I, Windows/Linuxììë Ctrl+Shift+I). 2. "Performance" íìŒë¡ ìŽëí©ëë€. 3. êž°ë¡ ë²íŒ(ì ììŽìœ)ì íŽëŠí©ëë€. 4. ì¹ì¬ìŽížì ìíž ìì©íê±°ë ë¶ìíë €ë ìì ì ìíí©ëë€. 5. ì€ì§ ë²íŒì íŽëŠí©ëë€. 6. íìëŒìžì ë¶ìí©ëë€. "Rendering" ì¹ì ìì ꞎ ìì ìŽë ë¹ë²í "Recalculate Style" ìŽë²€ížë¥Œ ì°Ÿìµëë€.
2. ì±ë¥ API
ì¹ ì±ë¥ APIë ì±ë¥ ì§íì ëí íë¡ê·žëë° ë°©ìì ì ê·Œì ì ê³µíì¬ ì¬ì©ì ì§ì ë°ìŽí°ë¥Œ ìì§íê³ CSS 컀ì€í ìì± ì±ë¥ì í¹ì 잡멎ì 몚ëí°ë§í ì ìëë¡ í©ëë€.
PerformanceObserver:PerformanceObserverAPI륌 ì¬ì©íì¬ ë ìŽìì ìŽë ë° êžŽ ìì 곌 ê°ì ì±ë¥ ìŽë²€ížë¥Œ êŽì°°íê³ êž°ë¡í©ëë€. ì í ë° ì¶ì²ì ë°ëŒ ìŽë²€ížë¥Œ íí°ë§íì¬ CSS 컀ì€í ìì±ê³Œ êŽë šë ìŽë²€ížë¥Œ ë¶ëЬí ì ììµëë€.performance.now():performance.now()륌 ì¬ì©íì¬ ë³ì ì ë°ìŽíž ëë ë³µì¡í ê³ì°ê³Œ ê°ì í¹ì ìœë ëžë¡ì ì€ííë ë° ê±žëŠ° ìê°ì ìž¡ì í©ëë€.
ìì (performance.now() ì¬ì©):
const start = performance.now();
// CSS 컀ì€í
ìì±ì ì
ë°ìŽížíë ìœë
document.documentElement.style.setProperty('--my-variable', 'new-value');
const end = performance.now();
const duration = end - start;
console.log(`Variable update took ${duration}ms`);
3. ì€ì ì¬ì©ì 몚ëí°ë§ (RUM)
ì€ì ì¬ì©ì 몚ëí°ë§(RUM)ì ì¹ì¬ìŽíž ì¬ì©ìê° ê²œííë ì€ì ì±ë¥ì ëí íµì°°ë ¥ì ì ê³µí©ëë€. RUM ë구ë ì€ì ì¬ì©ìì ì€ì 조걎ìì ë°ìŽí°ë¥Œ ìì§íì¬ í©ì± í ì€ížë³Žë€ ë ì íí ì±ë¥ ì 볎륌 ì ê³µí©ëë€.
- íìŽë° ë°ìŽí° ìì§: RUM ë구ë CSS ë¡ë©, ë ëë§ ë° JavaScript ì€í곌 êŽë šë íìŽë° ë°ìŽí°ë¥Œ ìì§í ì ììµëë€. ìŽ ë°ìŽí°ë CSS 컀ì€í ìì±ê³Œ êŽë šë ì±ë¥ ë³ëª© íìì ìë³íë ë° ì¬ì©ë ì ììµëë€.
- ì¬ì©ì 겜í ì§í ë¶ì: RUM ë구ë íìŽì§ ë¡ë ìê°, ìíž ìì© ê°ë¥ ìê°, 첫 ì ë ¥ ì§ì°ê³Œ ê°ì ì¬ì©ì 겜í ì§í륌 ì¶ì í ì ììµëë€. ìŽë¬í ì§íë CSS 컀ì€í ìì± ì¬ì©ë곌 ìêŽ êŽê³ë¥Œ ë¶ìíì¬ ì¬ì©ì 겜íì 믞ì¹ë ìí¥ì ìŽíŽí ì ììµëë€.
- ìžêž° ìë RUM ë구: Google Analytics, New Relic ë° Datadog ë±ìŽ ììµëë€.
CSS 컀ì€í ìì± ì±ë¥ ìµì í ì ëµ
CSS 컀ì€í ìì±ê³Œ êŽë šë ì±ë¥ ë³ëª© íìì ìë³í í ë€ì ìµì í ì ëµì 구íí ì ììµëë€:
1. ë³ì ì ë°ìŽíž ìµìí
ë¹ë²í ë³ì ì ë°ìŽížë 늬íë¡ì° ë° ëŠ¬íìžížë¥Œ ì ë°íì¬ ì±ë¥ 묞ì 륌 ìŒìŒí¬ ì ììµëë€. ë€ì ë°©ë²ìŒë¡ ì ë°ìŽíž íì륌 ìµìííììì€:
- ì ë°ìŽíž ìŒêŽ ì²ëЬ: ì¬ë¬ ë³ì ì ë°ìŽížë¥Œ ëšìŒ ìì ìŒë¡ 묶ìµëë€.
- ëë°ìŽì± ëë ì€ë¡íë§: ëë°ìŽì± ëë ì€ë¡íë§ êž°ì ì ì¬ì©íì¬ ì ë°ìŽíž ë¹ë륌 ì íí©ëë€.
- ì¡°ê±Žë¶ ì ë°ìŽíž: í¹ì 조걎ì ë°ëŒ íìí ëë§ ë³ì륌 ì ë°ìŽíží©ëë€.
2. ê³ì° ëšìí
calc(), var() ë° êž°í íšì륌 í¬íšíë ë³µì¡í ê³ì°ì ê³ì° ë¹ì©ìŽ ë§ìŽ ë€ ì ììµëë€. ë€ì ë°©ë²ìŒë¡ ê³ì°ì ëšìííììì€:
- ê° ë¯žëŠ¬ ê³ì°: ì¬ë¬ ë² ì¬ì©ëë ê°ì 믞늬 ê³ì°í©ëë€.
- ë ê°ëší íšì ì¬ì©: ê°ë¥í ê²œì° ë ê°ëší íšì륌 ì¬ì©í©ëë€.
- ì€ì²©ë ê³ì° íŒíêž°: ê³ì°ì ë묎 ê¹ê² ì€ì²©íì§ ë§ììì€.
3. ë³ì ë²ì ìµì í
ì ì ë³ì(:root ì íìì ì ìëš)ë ë¡ì»¬ ë²ì ë³ìë³Žë€ ë êŽë²ìí ìí¥ì ë¯žì¹ ì ììµëë€. ë€ì ë°©ë²ìŒë¡ ë³ì ë²ì륌 ìµì ííììì€:
- ë¡ì»¬ ë³ì ì¬ì©: ë³ê²œ ë²ì륌 ì ííêž° ìíŽ ê°ë¥í í ë¡ì»¬ ë³ì륌 ì¬ì©í©ëë€.
- ì ì ì¬ì ì íŒíêž°: ë¶íìíê² ì ì ë³ì륌 ì¬ì ìíì§ ë§ììì€.
4. CSS Containment ì¬ì©
CSS Containmentë DOM ížëЬì í¹ì ë¶ë¶ì ë ëë§ íšê³Œë¡ë¶í° 격늬íì¬ ëŠ¬íë¡ì° ë° ëŠ¬íìžížì ë²ì륌 ì ííšìŒë¡ìš ì±ë¥ì í¥ììíµëë€. containment륌 ì ì©í멎 ëžëŒì°ì ì í¹ì ìì ëŽì ë³ê²œ ì¬íìŽ ìžë¶ ììì ë ìŽìììŽë ì€íìŒì ìí¥ì 믞ì¹ì§ ìììŒ íšì ì늎 ì ììµëë€.
contain: layout: íŽë¹ ììì ë ìŽìììŽ ë¬žìì ëëšžì§ ë¶ë¶ê³Œ ë 늜ì ìì ëíë ëë€.contain: paint: íŽë¹ ììì ëŽì©ìŽ ë¬žìì ëëšžì§ ë¶ë¶ê³Œ ë 늜ì ìŒë¡ ê·žë €ì§ì ëíë ëë€.contain: content: íŽë¹ ììê° ë¬žìì ëëšžì§ ë¶ë¶ì ë¶ìì©ìŽ ììì ëíë ëë€.contain: layout paint styleì ìœìŽì ëë€.contain: strict: ê°ì¥ ê°ë ¥í containmentë¡, ìì í ë 늜ì±ì ëíë ëë€.contain: layout paint size styleì ìœìŽì ëë€.
containment륌 íšê³Œì ìŒë¡ ì ì©í멎 CSS 컀ì€í ìì± ì ë°ìŽížì ì±ë¥ ìí¥ì í¬ê² ì€ìŒ ì ììµëë€. í¹í ìŽë¬í ì ë°ìŽížê° êŽë²ìí 늬íë¡ì°ë 늬íìžížë¥Œ ì ë°í ì ìë 겜ì°ì ëì± ê·žë ìµëë€. ê·žë¬ë 곌ëíê² ì¬ì©í멎 ì±ë¥ì ì íŽí ì ììµëë€. ìŽë€ ììê° containmentë¡ë¶í° ì§ì ìŒë¡ ìŽì ì ì»ì ì ìëì§ ì ì€íê² ê³ ë €íììì€.
5. íëìšìŽ ê°ì íì©
transform ë° opacityì ê°ì í¹ì CSS ìì±ì íëìšìŽ ê°ììŽ ê°ë¥í©ëë€. ìŽë CPUê° ìë GPUì ìíŽ ë ëë§ëë€ë ê²ì ì믞í©ëë€. ìŽë í¹í ì ëë©ìŽì
ë° ì íì ëí ì±ë¥ì í¬ê² í¥ììí¬ ì ììµëë€.
- íëìšìŽ ê°ì ìì± ì¬ì©: CSS 컀ì€í ìì±ì ì¬ì©íë ì ëë©ìŽì ë° ì íìë ê°ë¥í í íëìšìŽ ê°ì ìì±ì ì¬ì©í©ëë€.
will-changeê³ ë €:will-changeìì±ì ììê° ë³ê²œë ê°ë¥ì±ìŽ ììì ëžëŒì°ì ì ìë € 믞늬 ë ëë§ì ìµì íí ì ìëë¡ íë ë° ì¬ì©ë ì ììµëë€.will-changeë 곌ëíê² ì¬ì©í멎 ë¶ì ì ìž ì±ë¥ ìí¥ì ë¯žì¹ ìë ììŒë¯ë¡ ì ì€íê² ì¬ì©íììì€.
6. ëžëŒì°ì ë³ ê³ ë € ì¬í
ëžëŒì°ì ë§ë€ CSS 컀ì€í ìì± íê°ë¥Œ ë€ë¥Žê² 구íí ì ììŽ ì±ë¥ í¹ì±ìŽ ë¬ëŒì§ ì ììµëë€. ëžëŒì°ì ë³ í¹ì±ì íì íê³ ê·žì ë°ëŒ ìœë륌 ìµì ííììì€.
- ì¬ë¬ ëžëŒì°ì ìì í ì€íž: í¹ì ëžëŒì°ì ìë§ íŽë¹ë ì ìë ì±ë¥ 묞ì 륌 ìë³íêž° ìíŽ ì¬ë¬ ëžëŒì°ì ìì ì¹ì¬ìŽížë¥Œ í ì€ížíììì€.
- ëžëŒì°ì ë³ ìµì í ì¬ì©: íìí ê²œì° ëžëŒì°ì ë³ ìµì í륌 ì¬ì©íë ê²ì ê³ ë €íììì€.
ì€ì ì¬ë¡
ìì 1: í ë§ ì í
CSS 컀ì€í ìì±ì ìŒë°ì ìž ì¬ì© ì¬ë¡ë í ë§ ì íì ëë€. ì¬ì©ìê° í ë§ë¥Œ ì íí ë ì¬ë¬ ë³ìì ê°ì ì ë°ìŽížíŽìŒ í ì ììµëë€. ì±ë¥ì ìµì ííë €ë©Ž ìŽë¬í ì ë°ìŽížë¥Œ ìŒêŽ ì²ëЬíê³ ì íì íëìšìŽ ê°ì ìì±ì ì¬ì©í ì ììµëë€.
ìì 2: ëì 컎í¬ëíž ì€íìŒë§
CSS 컀ì€í ìì±ì ì¬ì©ì ìíž ìì© ëë ë°ìŽí°ì ë°ëŒ 컎í¬ëížì ì€íìŒì ëì ìŒë¡ ì§ì íë ë° ì¬ì©ë ì ììµëë€. ì±ë¥ì ìµì ííë €ë©Ž ë¡ì»¬ ë³ì륌 ì¬ì©íê³ ê³ì°ì ëšìííììì€.
ìì 3: ë³µì¡í ì ëë©ìŽì
CSS 컀ì€í
ìì±ì ë³µì¡í ì ëë©ìŽì
ì ë§ëë ë° ì¬ì©ë ì ììµëë€. ì±ë¥ì ìµì ííë €ë©Ž íëìšìŽ ê°ì ìì±ì ì¬ì©íê³ will-change ìì± ì¬ì©ì ê³ ë €íììì€.
CSS 컀ì€í ìì± ì¬ì©ì ìí ëªšë² ì¬ë¡
ìµì ì ì±ë¥ì 볎ì¥íêž° ìíŽ CSS 컀ì€í ìì±ì ì¬ì©íë ëª ê°ì§ ëªšë² ì¬ë¡ë ë€ì곌 ê°ìµëë€:
- ì믞 ìë ë³ì ìŽëŠ ì¬ì©: ë³ìì 목ì ì ëª ííê² ëíëŽë ì€ëª ì ìž ë³ì ìŽëŠì ì¬ì©í©ëë€.
- ë³ì륌 ë ŒëŠ¬ì ìŒë¡ 구ì±: ë³ì륌 êž°ë¥ ëë ë²ìì ë°ëŒ ë ŒëŠ¬ì 귞룹ìŒë¡ 구ì±í©ëë€.
- ë³ì 묞ìí: ë³ìì 목ì 곌 ì¬ì©ë²ì ì€ëª íêž° ìíŽ ë³ì륌 묞ìíí©ëë€.
- ì² ì í í ì€íž: ë€ìí ëžëŒì°ì ë° í겜ìì ìœëê° ììëë¡ ìëíëì§ íìžíêž° ìíŽ ì² ì í í ì€íží©ëë€.
CSS 컀ì€í ìì± ì±ë¥ì 믞ë
ì¹ ëžëŒì°ì ê° ê³ì ë°ì íê³ ë ëë§ ìì§ì ìµì ííšì ë°ëŒ CSS 컀ì€í ìì±ì ì±ë¥ì í¥ìë ê°ë¥ì±ìŽ ëìµëë€. ë³ì ì²ëЬ ìë륌 ëì± í¥ììí¬ ìë¡ìŽ êž°ë¥ê³Œ êž°ì ìŽ ë±ì¥í ì ììµëë€. íšìšì ìŽê³ ë°ìì±ìŽ ë°ìŽë ì¹ ì í늬ìŒìŽì ì 구ì¶íë €ë©Ž ì¹ ì±ë¥ì ìµì ê°ë° ëí¥ì ëí ì 볎륌 ì ì§íë ê²ìŽ ì€ìí©ëë€.
ê²°ë¡
CSS 컀ì€í ìì±ì ìµì ì¹ ê°ë°ì ìí ê°ë ¥í ë구ì ëë€. ìŽ êžìì ì€ëª í ì±ë¥ ìí¥ê³Œ ìµì í ì ëµì ìŽíŽíê³ êµ¬ííšìŒë¡ìš ì¹ì¬ìŽížê° ë¶ëëœê³ ë°ìì±ìŽ ë°ìŽë ì¬ì©ì 겜íì ì ê³µíëë¡ ë³Žì¥í ì ììµëë€. ì§ìì ìž ëªšëí°ë§ ë° ë¶ìì ì±ë¥ ë³ëª© íìì ìë³íê³ íŽê²°íë ë° ì€ìíë©°, ì±ë¥ ì í ììŽ CSS 컀ì€í ìì±ì ìŽì ì íì©í ì ìëë¡ í©ëë€. ë€ìí ëžëŒì°ì ì êž°êž°ìì í ì€ížíë ê²ì ìì§ ë§ê³ , ì±ë¥ êŽë š ê²°ì ì ëŽëŠŽ ë íì ì¬ì©ì 겜íì ìµì°ì ìŒë¡ ìê°íììì€.